<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //在函数中使用this:
    //不管函数怎么定义,不管函数在哪定义,只看函数的调用(箭头函数除外).
    //
    //普通函数(直接调用/全局调用):this指向window
    //函数名()
    function fn(){
        console.log(this)//window
    }
    fn()//普通调用,this指向window(作用返回)

    //定时器函数:this指向window
    // setTimeout(function (){},0)
    // setInterval(function (){},0)
    setTimeout(fn,0)//把fn函数当作定时器处理函数使用

//    自行函数:this指向window
//    (function(){})()

//    对象调用函数:this指向的是xxx对象
//    xxx.函数名():
//    Math.random():
//    问:a.b.c()函数中的this指向是?   答  a.b
    var obj = {
        // 把fn
        f:fn,
        name:'I am obj object'
    }
    obj.f()//d object call,this point to obj(对象调用,this指向obj).
    setTimeout(obj.f,0)//把obj.f function当作定时器处理函数使用

//    事件处理函数:this指向的是事件源(绑定在谁身上的事件)
//    xxx.onclick = function(){}
// xxx.addEventListener('',function(){})

// 箭头函数不同于传统JavaScript中的函数，箭头函数没有自己的this
// 他所谓的THIS是捕获其所在上下文的this值，作为自己的this值


</script>
</body>
</html>